/*
 * SurfaceFactory.h
 *
 *  Created on: 03/12/2009
 *      Author: marcos
 */

#ifndef SURFACEFACTORY_H_
#define SURFACEFACTORY_H_

#include "gui/Surface.h"
#include "gui/util/ImageCache.h"

namespace gui {

class SurfaceFactory {
public:
	SurfaceFactory(int bpp, Uint32 rMask, Uint32 gMask, Uint32 bMask, Uint32 aMask);
	virtual ~SurfaceFactory();
	Surface* createSurface(Portion portion);
	Surface* createSurface(Portion portion, RGBColor baseColor);
	Surface* createSurface(Surface* surface);
	Surface* createSurface(std::string filename, Portion portion);
private:
	int bpp;
	RGBColor maskColor;
	Uint32 aMask;
	ImageCache imageCache;
};

}

#endif /* SURFACEFACTORY_H_ */
